home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
lisp
/
eulisp
/
feel0_89.lha
/
Feel
/
Src
/
Makefile.bak
< prev
next >
Wrap
Makefile
|
1993-07-15
|
18KB
|
475 lines
# ###################################################################### #
# The FEEL makefile... #
# ###################################################################### #
#
# $Id: Makefile,v 1.9 1992/11/26 16:55:33 pab Exp $
#
##########################################################################
# Customisation section... #
##########################################################################
# Edit the following for your favourite machine.
# Where Src directory lives
BASE = /net/brad/opt/home/pab/Feel
# Feel knows about the systems below:
# Stardent RS6000 Gould Sun4 Sun3 Clipper Vax Alliant Meiko 386
# Here is some info in case you have something different:
# WITH_SYSTEMV_SOCKETS - System V IP communication
# WITH_BSD_SOCKETS - BSD IP communication (4.3, or see defs.h)
# WITH_SYSTEMV_SIGNALS - System V signalling
# WITH_BSD_SIGNALS - BSD signalling
# DONT_HAVE_STDLIB_H - half-hearted ANSI without stdlib.h
# ALIGN8 - if the machine is fussy about 8 byte alignments, e.g., doubles
# TRAP_ALL - vauge attempt to catch segvs, buses, etc. implied by
# MACHINE=SYSTEMV
# Architecture and machine type...
# MACHINE is ANY,BSD or SystemV.
# ANY is any 'reasonable' architecture --- things that run UNIX, and many others
# BSD is supported on any machine with a *-swch.s file in this
# directory. See the note in the manual for what it does, and how to port it.
# SystemV is for sun3/4, Stardents and Alliant concentrix machines
# It ought to work for any UNIX machine that has shared memory primitives
# and that BSD config. works for.
# BTW, BSD works on MSDOS boxes(!)
# Systems not listed but have worked in the 'ANY' config:
# DEC MIPS (try hacking the ard-swch code for BSD version)
#
# Extra goodies, won't necesarily work
# -DBCI Want a bytecode interpreter?
# -DLOWTAGINTS Low tag integers kind of work,
# but break the addons code (and maybe other things)
# READLINE - used to work. Bit rot may have set in here.
# common options
# how to optimise your code
STDOFLAGS =
# everybody needs these
STDFLAGS = -DWITH_FUDGE
CPP = cc -E
#
# Stardent
#SYSFLAGS = -DWITH_SYSTEMV_SOCKETS \
# -DDONT_HAVE_STDLIB_H -DBCI
#OFLAGS = -g #-O -inline
#MACHINE = BSD # Can be SYSTEMV
#ARCH = ard#a43
#CC = cc
#LIBS = -lm
# Norcroft-stardent
#SYSFLAGS = -DBCI -DNEWTELOS -DNORCROFT -DDEBUG
#OFLAGS = #-O -inline
#MACHINE = ANY #BSD # Can be SYSTEMV
#ARCH = ard#a43
#CC = /net/brad/denton_export/users/jpff/Norcroft/ncc.mips2 -I/net/brad/denton_export/users/jpff/ncc.include
#LIBS =
# Iris
#SYSFLAGS = -DWITH_SYSTEMV_SOCKETS \
# -DBCI -D__STDC__
#OFLAGS = -g -p
#MACHINE = BSD # BSD # Can be SYSTEMV
#ARCH = irx
#CC = cc #-43
#LIBS = -lm
#LINKFLAGS=-p
# Sun4
SYSFLAGS = -DWITH_SYSTEMV_SOCKETS -DWITH_BSD_SIGNALS -DBCI -DALIGN8
OFLAGS = -O2
MACHINE = BSD #BSD #or SYSTEMV, for the keen
ARCH = sun4
CC = gcc
LIBS = -lm
# RS6000
#SYSFLAGS = -DWITH_SYSTEMV_SOCKETS \
# -DWITH_SYSTEMV_SIGNALS -DTRAP_ALL -D_ALL_SOURCE
#MACHINE = ANY
#ARCH = any
#CC = xlc
#LIBS = -lm
# Gould
#SYSFLAGS = -DWITH_BSD_SIGNALS \
# -DDONT_HAVE_STDLIB_H -DALIGN8
#MACHINE = ANY
#ARCH = any
#CC = gcc
#LIBS = -lm
# Sun3
#SYSFLAGS = -DWITH_SYSTEMV_SOCKETS -DDONT_HAVE_STDLIB_H -DWITH_BSD_SIGNALS
#MACHINE = BSD
#ARCH = sun3
#CC = gcc
#LIBS = -lm
# Clipper
#SYSFLAGS = -DWITH_BSD_SIGNALS -DALIGN8
#MACHINE = BSD
#ARCH = clip
#CC = ncc
#LIBS = /lib/crt0.o
# Vax
#SYSFLAGS = -mg -O -DDONT_HAVE_STDLIB_H -DBCI
#MACHINE = ANY
#ARCH = any
#CC = gcc
#LIBS = -lmg
# Alliant
#SYSFLAGS = -DWITH_BSD_SIGNALS -DWITH_BSD_SOCKETS -DALIGN8
#MACHINE = SYSTEMV
#ARCH = i860
#CC = fxc
#LIBS = -lm
# Meiko
# SYSFLAGS =
# MACHINE = ANY
# CC = mcc
# LIBS = -lm
# EXTRASRCS =
# EXTRAOBJS =
# 386
# ...
#SYSFLAGS = -DWITH_SYSTEMV_SOCKETS \
# -DDONT_HAVE_STDLIB_H -DBCI
#OFLAGS = -O
#MACHINE = BSD
#ARCH = 386
#CC = gcc #-43
#LIBS = -lm
# i860
# Not an alliant?
# Try MACHINE=BSD, then change the shared memory primitives around
#
# ################################################################### #
# Sundry constants #
# ################################################################### #
LEX = flex
YACC = bison -y -t
# Local module path
MODULE_PATH = ${BASE}/Modules/
# Semaphoring...
# Hardware semaphores are OK, but
SEMAPHORES = SOFTWARE
# Do the business...
# ###################################################################### #
# Working section... #
# ###################################################################### #
LOAD_PATH_NAME = FEEL_LOAD_PATH
MACHINEABBREV = ${ARCH}
DATE = `date`
# invent flags
FLAGS = ${STDFLAGS} ${STDOFLAGS} ${SYSFLAGS} ${OFLAGS}
BCIOPTFLAGS = -O -inline
# Reader specific sources...
READERSOURCES = reader.c feelflex.lex feelflex.skl
READERIMMOBJS = lex.yy.c
READEROBJECTS = lex.yy.o reader.o
# Default Elvira sources...
ELVIRASOURCES = initelv.c
ELVIRAOBJECTS = initelv.o
# Garbage collector sources
GCOBJECTS = ../CGC/gc.o remalloc.o
# Main sources...
SOURCES = copyalloc.c copy.c arith.c basic.c chars.c error.c \
main.c modules.c set.c streams.c \
t2.c vectors.c bootstrap.c lists.c \
class.c ngenerics.c \
symboot.c modboot.c toplevel.c root.c specials.c \
calls.c ccc.c macros.c system.c semaphores.c state.c \
sockets.c sio.c modops.c lamport.c bvecs2.c
OBJECTS = copyalloc.o copy.o arith.o basic.o chars.o error.o \
main.o modules.o set.o streams.o \
t2.o vectors.o bootstrap.o lists.o \
class.o ngenerics.o \
symboot.o modboot.o toplevel.o root.o specials.o \
calls.o ccc.o macros.o system.o semaphores.o state.o \
sockets.o sio.o modops.o lamport.o bvecs2.o
HDRS = bootstrap.h generics.h modules.h specials.h toplevel.h \
calls.h global.h ngenerics.h state.h vectors.h \
ccc.h lamport.h structs.h version.h \
class.h lex_global.h root.h symboot.h y.tab.h \
copy.h runtime.h syssockets.h funcalls.h weak.h \
defs.h lists.h semaphores.h system_p.h yyfudge.c allocate.h \
error.h macros.h sio.h system_t.h bvf.h modops.h garbage.h \
format.h modboot.h slots.h table.h threads.h iset.h sockets.h \
interpret.h bytecodes.h t2.h reader.h
COSOURCES = ${MACHINEABBREV}-swch.s threads.c
COOBJECTS = ${MACHINEABBREV}-swch.o threads.o
DISTRIBCO = sun3-swch.s sun4-swch.s ard-swch.s clip-swch.s any-swch.s i860-swch.s \
386-swch.s irx-swch.s Makefile Makefile.386
KERNELLISP= defs.em extras0.em initcode.em macros0.em standard0.em sockets.em semaphores.em bitvecs.em
# Lisp object file
LISPOBJECTS = LispSrc/all-lisp.o
ISOURCES = interpret.c
IHDRS = bytecodes.h interpret.h
IOBJECTS = interp.o
# Lisp object file
LISPOBJECTS = LispSrc/all-lisp.o
you: ${OBJECTS} ${COOBJECTS} ${READEROBJECTS} ${ELVIRAOBJECTS} ${IOBJECTS}
-touch you
rm you
${CC} ${LINKFLAGS} -o you ${OBJECTS} ${COOBJECTS} \
${READEROBJECTS} ${IOBJECTS} ${ELVIRAOBJECTS} ${LIBS}
echo
test: ${OBJECTS} ${COOBJECTS} ${READEROBJECTS} ${ELVIRAOBJECTS} ${IOBJECTS}
-touch test
rm test
${CC} -yinitialise_readstr -o test ${OBJECTS} ${COOBJECTS} \
${READEROBJECTS} ${IOBJECTS} ${ELVIRAOBJECTS} ${LIBS}
echo
proyou: ${OBJECTS} ${COOBJECTS} ${READEROBJECTS} ${ELVIRAOBJECTS}
${CC} -p -o proyou ${OBJECTS} ${COOBJECTS} \
${READEROBJECTS} ${ELVIRAOBJECTS} ${LIBS}
echo
elvira: ${OBJECTS} ${COOBJECTS} ${READEROBJECTS} ${IOBJECTS}
ld -r -o feel_elvira.o ${OBJECTS} ${COOBJECTS} ${READEROBJECTS} ${IOBJECTS}
mv feel_elvira.o ../Objs/${ARCH}-elvira.o
echo
feel_elvira.o: elvira
feel: feel_elvira.o ${LISPOBJECTS}
(cd LispSrc; make all-lisp.o)
ecc -o feel ${LISPOBJECTS}
echo
reader:
${LEX} comp.lex
${YACC} test.yac
# Sicko bytecode hacking
# preprocess explicitly, then compile the result, after stripping out
# cpp control codes. Ugh. Makes debugging easier though.
interp.o: interpret.c bytecodes.h interpret.h
-${CC} -c -E interpret.c ${FLAGS} \
-DMACHINE_${MACHINE} \
-DMODULE_PATH=\"${MODULE_PATH}\" \
-DLOAD_PATH_NAME=\"${LOAD_PATH_NAME}\" \
-DSEMAPHORES_${SEMAPHORES} \
-DMAKE_DATE="\"${DATE}\"" -o interp.o \
| grep -v "^#" | /usr/local/bin/indent > interp.c
${CC} ${FLAGS} ${BCIOPTFLAGS} -c interp.c
#mv interpret.o interp.o
#reader hacking
lex.yy.c: ${READERSOURCES}
flex -I -Sfeelflex.skl feelflex.lex
.c.o:
${CC} -c $*.c ${FLAGS} \
-DMACHINE_${MACHINE} \
-DMODULE_PATH=\"${MODULE_PATH}\" \
-DLOAD_PATH_NAME=\"${LOAD_PATH_NAME}\" \
-DSEMAPHORES_${SEMAPHORES} \
-DMAKE_DATE="\"${DATE}\""
version: ${SOURCES} ${COSOURCES} ${READERSOURCES} ${ELVIRASOURCES} ${DISTRIBCO} ${HDRS} ${KERNELLISP}
rcsfreeze
tar: ${SOURCES} ${COSOURCES} ${READERSOURCES} ${ELVIRASOURCES} ${DISTRIBCO} ${READERIMMOBJS} \
${HDRS} ${KERNELLISP} ${ISOURCES} ${IHDRS}
tar chf - ${SOURCES} ${COSOURCES} ${READERSOURCES} ${ELVIRASOURCES} \
${DISTRIBCO} ${HDRS} ${KERNELLISP} ${ISOURCES} ${IHDRS} ${READERIMMOBJS} \
| compress > you.tar.Z
# Some systems have X, others have (g)cc -M. Makedepend in pref.
depend: ${SOURCES} ${HDRS} ${READERSOURCES} ${COSOURCES}
makedepend -s "# DO NOT DELETE THIS LINE" -- ${FLAGS} -- ${SOURCES} ${COSOURCES} \
|| (sed -n -e '1,/^# DO NOT DELETE/d' < Makefile > tmp ; \
for i in ${SOURCES} ${COSOURCES} ; do ${CPP} ${FLAGS} -M $$i; done >> tmp ;\
mv tmp Makefile)
clean:
rm ${OBJECTS} ${COOBJECTS} ${READEROBJECTS} you
${MACHINE}-coroutine.o: ${MACHINE}-coroutine.s
${CC} -c ${MACHINE}-coroutine.s
#if there is odd stuff below this line, remove it and do make depend.
# if make depend fails don't worry. It only gets the header dependencies
# right.
# DO NOT DELETE THIS LINE
copyalloc.o: defs.h structs.h /usr/include/stdio.h /usr/include/varargs.h
copyalloc.o: /usr/include/setjmp.h system_t.h system_p.h funcalls.h global.h
copyalloc.o: state.h allocate.h error.h table.h threads.h copy.h
copy.o: /usr/include/string.h defs.h structs.h /usr/include/stdio.h
copy.o: /usr/include/varargs.h /usr/include/setjmp.h system_t.h system_p.h
copy.o: funcalls.h global.h state.h copy.h weak.h threads.h
arith.o: defs.h structs.h /usr/include/stdio.h /usr/include/varargs.h
arith.o: /usr/include/setjmp.h system_t.h system_p.h error.h funcalls.h
arith.o: modboot.h global.h state.h ngenerics.h /usr/include/math.h
arith.o: /usr/include/values.h
basic.o: defs.h structs.h /usr/include/stdio.h /usr/include/varargs.h
basic.o: /usr/include/setjmp.h system_t.h system_p.h funcalls.h error.h
basic.o: global.h state.h modboot.h specials.h weak.h streams.h
basic.o: /usr/include/sys/types.h /usr/include/sys/times.h
chars.o: /usr/include/string.h /usr/include/ctype.h funcalls.h defs.h
chars.o: structs.h /usr/include/stdio.h /usr/include/varargs.h
chars.o: /usr/include/setjmp.h system_t.h system_p.h error.h global.h state.h
chars.o: modboot.h symboot.h calls.h
error.o: /usr/include/stdio.h /usr/include/varargs.h /usr/include/string.h
error.o: defs.h structs.h /usr/include/setjmp.h system_t.h system_p.h
error.o: funcalls.h global.h state.h error.h bootstrap.h slots.h class.h
error.o: symboot.h modules.h specials.h modboot.h ngenerics.h calls.h
error.o: streams.h
main.o: version.h defs.h structs.h /usr/include/stdio.h
main.o: /usr/include/varargs.h /usr/include/setjmp.h system_t.h system_p.h
main.o: funcalls.h error.h global.h state.h slots.h garbage.h symboot.h
main.o: modules.h toplevel.h root.h specials.h lists.h listops.h calls.h
main.o: ccc.h allocate.h modboot.h macros.h semaphores.h format.h modops.h
main.o: threads.h sio.h /usr/include/string.h /usr/include/ctype.h streams.h
main.o: reader.h bvf.h
modules.o: /usr/include/limits.h defs.h structs.h /usr/include/stdio.h
modules.o: /usr/include/varargs.h /usr/include/setjmp.h system_t.h system_p.h
modules.o: funcalls.h error.h global.h state.h allocate.h lists.h table.h
modules.o: modules.h toplevel.h symboot.h specials.h root.h class.h
modules.o: ngenerics.h calls.h bvf.h threads.h streams.h reader.h
set.o: defs.h structs.h /usr/include/stdio.h /usr/include/varargs.h
set.o: /usr/include/setjmp.h system_t.h system_p.h funcalls.h error.h
set.o: global.h state.h class.h ngenerics.h
streams.o: /usr/include/stdio.h /usr/include/varargs.h /usr/include/ctype.h
streams.o: funcalls.h defs.h structs.h /usr/include/setjmp.h system_t.h
streams.o: system_p.h error.h global.h state.h allocate.h modboot.h calls.h
streams.o: streams.h reader.h ngenerics.h
t2.o: funcalls.h defs.h structs.h /usr/include/stdio.h /usr/include/varargs.h
t2.o: /usr/include/setjmp.h system_t.h system_p.h error.h global.h state.h
t2.o: modboot.h calls.h table.h t2.h
vectors.o: /usr/include/stdio.h /usr/include/varargs.h funcalls.h defs.h
vectors.o: structs.h /usr/include/setjmp.h system_t.h system_p.h global.h
vectors.o: state.h error.h bootstrap.h modboot.h
bootstrap.o: /usr/include/stdio.h /usr/include/varargs.h funcalls.h defs.h
bootstrap.o: structs.h /usr/include/setjmp.h system_t.h system_p.h global.h
bootstrap.o: state.h bootstrap.h symboot.h allocate.h copy.h slots.h
bootstrap.o: ngenerics.h table.h
lists.o: /usr/include/string.h funcalls.h defs.h structs.h
lists.o: /usr/include/stdio.h /usr/include/varargs.h /usr/include/setjmp.h
lists.o: system_t.h system_p.h error.h global.h state.h allocate.h modboot.h
listops.o: defs.h structs.h /usr/include/stdio.h /usr/include/varargs.h
listops.o: /usr/include/setjmp.h system_t.h system_p.h funcalls.h error.h
listops.o: global.h state.h modboot.h symboot.h calls.h modules.h ngenerics.h
class.o: /usr/include/stdio.h /usr/include/varargs.h defs.h structs.h
class.o: /usr/include/setjmp.h system_t.h system_p.h funcalls.h global.h
class.o: state.h error.h class.h vectors.h table.h bootstrap.h slots.h
class.o: ngenerics.h modules.h modboot.h garbage.h calls.h
ngenerics.o: defs.h structs.h /usr/include/stdio.h /usr/include/varargs.h
ngenerics.o: /usr/include/setjmp.h system_t.h system_p.h funcalls.h global.h
ngenerics.o: state.h error.h allocate.h ngenerics.h bootstrap.h class.h bvf.h
ngenerics.o: modules.h symboot.h specials.h modboot.h calls.h streams.h
symboot.o: /usr/include/stdio.h /usr/include/varargs.h funcalls.h defs.h
symboot.o: structs.h /usr/include/setjmp.h system_t.h system_p.h global.h
symboot.o: state.h error.h /usr/include/string.h table.h symboot.h allocate.h
symboot.o: copy.h
modboot.o: /usr/include/stdio.h /usr/include/varargs.h /usr/include/string.h
modboot.o: /usr/include/ctype.h funcalls.h defs.h structs.h
modboot.o: /usr/include/setjmp.h system_t.h system_p.h global.h state.h
modboot.o: allocate.h symboot.h ngenerics.h modules.h table.h error.h
modboot.o: modboot.h bvf.h
toplevel.o: funcalls.h defs.h structs.h /usr/include/stdio.h
toplevel.o: /usr/include/varargs.h /usr/include/setjmp.h system_t.h
toplevel.o: system_p.h error.h global.h state.h symboot.h allocate.h
toplevel.o: modules.h specials.h toplevel.h streams.h
root.o: /usr/include/stdio.h /usr/include/varargs.h /usr/include/string.h
root.o: funcalls.h defs.h structs.h /usr/include/setjmp.h system_t.h
root.o: system_p.h error.h global.h state.h slots.h table.h garbage.h
root.o: allocate.h modboot.h symboot.h modules.h toplevel.h root.h copy.h
root.o: streams.h reader.h
specials.o: defs.h structs.h /usr/include/stdio.h /usr/include/varargs.h
specials.o: /usr/include/setjmp.h system_t.h system_p.h funcalls.h error.h
specials.o: global.h state.h slots.h garbage.h symboot.h modules.h root.h
specials.o: allocate.h specials.h toplevel.h streams.h
calls.o: funcalls.h defs.h structs.h /usr/include/stdio.h
calls.o: /usr/include/varargs.h /usr/include/setjmp.h system_t.h system_p.h
calls.o: error.h global.h state.h allocate.h lists.h modules.h modboot.h
calls.o: class.h calls.h
ccc.o: /usr/include/stdio.h /usr/include/varargs.h /usr/include/string.h
ccc.o: funcalls.h defs.h structs.h /usr/include/setjmp.h system_t.h
ccc.o: system_p.h error.h global.h state.h calls.h modboot.h ngenerics.h
macros.o: defs.h structs.h /usr/include/stdio.h /usr/include/varargs.h
macros.o: /usr/include/setjmp.h system_t.h system_p.h error.h funcalls.h
macros.o: global.h state.h slots.h garbage.h symboot.h modules.h toplevel.h
macros.o: root.h allocate.h specials.h modboot.h
system.o: /usr/include/signal.h /usr/include/sys/signal.h funcalls.h defs.h
system.o: structs.h /usr/include/stdio.h /usr/include/varargs.h
system.o: /usr/include/setjmp.h system_t.h system_p.h global.h state.h
system.o: error.h allocate.h garbage.h threads.h
semaphores.o: defs.h structs.h /usr/include/stdio.h /usr/include/varargs.h
semaphores.o: /usr/include/setjmp.h system_t.h system_p.h funcalls.h error.h
semaphores.o: global.h state.h calls.h modboot.h allocate.h modules.h
semaphores.o: threads.h
state.o: funcalls.h defs.h structs.h /usr/include/stdio.h
state.o: /usr/include/varargs.h /usr/include/setjmp.h system_t.h system_p.h
state.o: error.h global.h state.h calls.h modboot.h allocate.h modules.h
state.o: threads.h
sio.o: /usr/include/string.h funcalls.h defs.h structs.h /usr/include/stdio.h
sio.o: /usr/include/varargs.h /usr/include/setjmp.h system_t.h system_p.h
sio.o: error.h global.h state.h allocate.h symboot.h syssockets.h sio.h
sio.o: /usr/include/ctype.h
modops.o: funcalls.h defs.h structs.h /usr/include/stdio.h
modops.o: /usr/include/varargs.h /usr/include/setjmp.h system_t.h system_p.h
modops.o: error.h global.h state.h symboot.h allocate.h modules.h specials.h
modops.o: modboot.h root.h table.h
lamport.o: defs.h lamport.h
bvecs2.o: /usr/include/stdio.h /usr/include/varargs.h funcalls.h defs.h
bvecs2.o: structs.h /usr/include/setjmp.h system_t.h system_p.h global.h
bvecs2.o: state.h error.h allocate.h class.h modboot.h bootstrap.h
threads.o: defs.h structs.h /usr/include/stdio.h /usr/include/varargs.h
threads.o: /usr/include/setjmp.h system_t.h system_p.h funcalls.h global.h
threads.o: state.h error.h calls.h modboot.h symboot.h allocate.h modules.h
threads.o: threads.h class.h vectors.h garbage.h streams.h